性能分析
用于分析一段代码的调用耗时
local tracer = require 'base.tracer'
使用说明
新创建一个 tracer, 将要分析的代码段,放于 start() 和 finish() 之间:
local function b()
local j = 1
for i = 1, 100 do
j = j * i
end
end
local function a()
b()
end
local function test()
for i = 1, 100 do
a()
end
end
-- 测试 test 的性能
local tracer = require 'base.tracer'
local t = tracer.new()
t:start()
test()
t:finish()
执行完毕后,会在控制台输出函数堆栈,及各个函数的调用耗时,如:
test:43 0.85ms 1
-- a:39 0.84ms 100
---- b:32 0.54ms 100
finish:127 0.01ms 1
-- sethook:-1 0.00ms 1
其中,第一列为函数名及函数定义所在的行号,如果为系统 api,行号为 -1
第二列是调用函数的总耗时
第三列是调用函数的总次数